﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
using System.Data.SqlClient;
using System.Configuration;

namespace App_Persistencia
{
    public class Cobro_Data
    {

        private DateTime fecha;

        public DateTime Fecha
        {
            get { return fecha; }
            set { fecha = value; }
        }
        private double monto;

        public double Monto
        {
            get { return monto; }
            set { monto = value; }
        }

        public DataTable popularCobros()//COPIADO Y PEGADO DE EVENTOS NO USAR
        {

            //string commandSQL = "SELECT     Evento.eve_Id as Nro, Evento.eve_FechaEvento as Fecha, Cliente.cli_Apellido as Apellido, Evento.eve_MontoTotal as MontoTotal "
            //                   + "FROM Evento, Cliente"
            //                   + "WHERE Evento.cliente_Id = Cliente.cli_Id and Evento.estadoEvento_Id = " + 1;


            //// Creo el Objeto DataAdapter y le paso la cadena al constructor y la sentencia SQL
            //string conexion = ConfigurationManager.ConnectionStrings["CadenaConexion"].ConnectionString;
            //SqlDataAdapter dataAdapter = new SqlDataAdapter(commandSQL, new SqlConnection(conexion));

            ////// Obtengo la tabla del DataSet
            ////DataTable dataTable = new DataTable();


            ////// Relleno el DataTable
            ////dataAdapter.Fill(dataTable);

            //// Creo el Objeto DataSet
            DataSet dataSet = new DataSet();

            //// Relleno el Objeto DataSet
            //dataAdapter.Fill(dataSet, "Evento");

            // Obtengo la tabla del DataSet
            DataTable dataTable = dataSet.Tables["Evento"];

            return dataTable;
        }
    
          public void guardarCobro(int idEvento)
        {
            // Crear el Objeto de conexion, inicializa con la cadena de conexion
            string conexion = ConfigurationManager.ConnectionStrings["CadenaConexion"].ConnectionString;
            System.Data.SqlClient.SqlConnection connection = new SqlConnection(conexion);

            // Abro la conexion
            connection.Open();

            //Invoco al Objeto SqlTransaction para manejar la transaccion  
            //ejecuto la transaccion
          
            try
            {
                // Creo el Objeto Command, le asigno la conexion y el Procediminto a utilizar
                System.Data.SqlClient.SqlCommand command = new System.Data.SqlClient.SqlCommand();
                //Asigno a la propiedad Transaction del Objeto SqlCommand el valor del Objeto SqlTransaction
                //Asingo la conexion al objeto conection
                command.Connection = connection;
                command.CommandText = "spCargarCobro";
                command.CommandType = CommandType.StoredProcedure;

                // Declaro el Objeto de parametro
                System.Data.SqlClient.SqlParameter param;


                    // Establesco el parametro @SocDenom, uso como entrada los atributos de la clase
                param = command.Parameters.AddWithValue("@EventoId", idEvento);
                param.DbType = DbType.Int32;
                param.Direction = ParameterDirection.Input;

                    // Establesco el parametro @SocDenom, uso como entrada los atributos de la clase
                    param = command.Parameters.AddWithValue("@Monto", monto);
                    param.DbType = DbType.Double;
                    param.Direction = ParameterDirection.Input;

                    // Establesco el parametro @EjeId, uso como entrada los atributos de la clase
                    param = command.Parameters.AddWithValue("@Fecha", fecha);
                    param.DbType = DbType.Date;
                    param.Direction = ParameterDirection.Input;

                   
                    // Ejecuto el procedimiento
                    command.ExecuteNonQuery();

               

                //Si no se genero ningun error en la carga ejecuto el commit
                
            }
            catch (SystemException e)
            {
                //provoco una Exepcion para la capa superior
                System.Diagnostics.Trace.Write(e.Message);

                throw new SystemException(e.Message);
            }
            finally
            {
                //Si termino la carga correctamente cierro la conexion
                connection.Close();
            }

        }

    }

    

    
    }

    



